/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package bean;

import java.io.Serializable;
import djhu.xml.commons.RootElement;
import djhu.xml.commons.XMLObject;
import java.sql.Date;
/**
 *
 * @author wudihua
 */
@RootElement(path = "/Patient")
public class PatientBean implements Serializable {

    private static final long serialVersionUID = 301320518946831491L;

    //患者id
    @XMLObject(xpath = "./id/@value", ntype = XMLObject.ATTRIBUTE)
    private String patientId;

    //身份证号编码系标识
    @XMLObject(xpath = "./identifier[1]/system/@value", ntype = XMLObject.ATTRIBUTE)
    private String idCode;

    //身份证号
    @XMLObject(xpath = "./identifier[1]/value/@value", ntype = XMLObject.ATTRIBUTE)
    private String idNumber;

    //社保卡号编码系标识
    @XMLObject(xpath = "./identifier[2]/system/@value", ntype = XMLObject.ATTRIBUTE)
    private String socialCode;

    //社保卡号
    @XMLObject(xpath = "./identifier[2]/value/@value", ntype = XMLObject.ATTRIBUTE)
    private String socialNumber;

    //姓名 可以只提供text字段而不提供family和given
    @XMLObject(xpath = "./name/text/@value", ntype = XMLObject.ATTRIBUTE)
    private String patientAllName;

    @XMLObject(xpath = "./name/family/@value", ntype = XMLObject.ATTRIBUTE)
    private String patientFamilyName;

    @XMLObject(xpath = "./name/given/@value", ntype = XMLObject.ATTRIBUTE)
    private String patientGivenName;

    // <system value="phone"/>
    @XMLObject(xpath = "./telecom/system/@value", ntype = XMLObject.ATTRIBUTE)
    private String type;

    //<value value="13800138000"/>
    @XMLObject(xpath = "./telecom/value/@value", ntype = XMLObject.ATTRIBUTE)
    private String value;

    //<use value="mobile"/>
    @XMLObject(xpath = "./telecom/use/@value", ntype = XMLObject.ATTRIBUTE)
    private String use;

    //性别
    @XMLObject(xpath = "./gender/@value", ntype = XMLObject.ATTRIBUTE)
    private String gender;

    //日期
    @XMLObject(xpath = "./birthDate/@value", ntype = XMLObject.ATTRIBUTE)
    private String birthDate;

    //时间 value="2003-01-12T09:12:35+08:00"
    @XMLObject(xpath = "./birthDate/extension/valueDateTime/@value", ntype = XMLObject.ATTRIBUTE)
    private String birthTime;

    //删除状态
    private String deleteStatus;

    //更新状态
    private String updateStatus;

    //版本号，默认创建为1，执行更新操作，依次增加
    private String versionNumber;

    //<use value="home"/>
    @XMLObject(xpath = "./address/use/@value", ntype = XMLObject.ATTRIBUTE)
    private String addressUse;

    //<text value="北京市东城区景ft前街4号"/>
    @XMLObject(xpath = "./address/text/@value", ntype = XMLObject.ATTRIBUTE)
    private String addressText;

    //<line value="景ft前街4号"/>
    @XMLObject(xpath = "./address/line/@value", ntype = XMLObject.ATTRIBUTE)
    private String addressLine;

    //<city value="北京市"/>
    @XMLObject(xpath = "./address/city/@value", ntype = XMLObject.ATTRIBUTE)
    private String addressCity;

    //<district value="东城区"/>
    @XMLObject(xpath = "./address/district/@value", ntype = XMLObject.ATTRIBUTE)
    private String addressDistrict;

    //<state value="北京"/>
    @XMLObject(xpath = "./address/state/@value", ntype = XMLObject.ATTRIBUTE)
    private String addressState;

    //<postalCode value="100010"/>
    @XMLObject(xpath = "./address/postalCode/@value", ntype = XMLObject.ATTRIBUTE)
    private String addressPostalCode;


    @XMLObject(xpath = "./contact/relationship/coding/code/@value", ntype = XMLObject.ATTRIBUTE)
    private String contactRelationship;

    //联系人姓名
    @XMLObject(xpath = "./contact/name/text/@value", ntype = XMLObject.ATTRIBUTE)
    private String contactName;

    // <system value="phone"/>
    @XMLObject(xpath = "./contact/telecom/system/@value", ntype = XMLObject.ATTRIBUTE)
    private String contactType;

    //<value value="13012345678"/>
    @XMLObject(xpath = "./contact/telecom/value/@value", ntype = XMLObject.ATTRIBUTE)
    private String contactValue;

    //联系人性别
    @XMLObject(xpath = "./contact/gender/@value", ntype = XMLObject.ATTRIBUTE)
    private String contactGender;

    // 更新时间
    private Date updateTime;

    public Date getUpdateTime() {
        return updateTime;
    }

    public void setUpdateTime(Date updateTime) {
        this.updateTime = updateTime;
    }

    public String getPatientId() {
        return patientId;
    }

    public void setPatientId(String patientId) {
        this.patientId = patientId;
    }

    public String getIdCode() {
        return idCode;
    }

    public String getVersionNumber() {
        return versionNumber;
    }

    public void setVersionNumber(String versionNumber) {
        this.versionNumber = versionNumber;
    }

    public void setIdCode(String idCode) {
        this.idCode = idCode;
    }

    public String getIdNumber() {
        return idNumber;
    }

    public void setIdNumber(String idNumber) {
        this.idNumber = idNumber;
    }

    public String getSocialCode() {
        return socialCode;
    }

    public void setSocialCode(String socialCode) {
        this.socialCode = socialCode;
    }

    public String getSocialNumber() {
        return socialNumber;
    }

    public void setSocialNumber(String socialNumber) {
        this.socialNumber = socialNumber;
    }

    public String getPatientAllName() {
        return patientAllName;
    }

    public void setPatientAllName(String patientAllName) {
        this.patientAllName = patientAllName;
    }

    public String getPatientFamilyName() {
        return patientFamilyName;
    }

    public void setPatientFamilyName(String patientFamilyName) {
        this.patientFamilyName = patientFamilyName;
    }

    public String getPatientGivenName() {
        return patientGivenName;
    }

    public void setPatientGivenName(String patientGivenName) {
        this.patientGivenName = patientGivenName;
    }

    public String getType() {
        return type;
    }

    public void setType(String type) {
        this.type = type;
    }

    public String getValue() {
        return value;
    }

    public void setValue(String value) {
        this.value = value;
    }

    public String getUse() {
        return use;
    }

    public void setUse(String use) {
        this.use = use;
    }

    public String getGender() {
        return gender;
    }

    public void setGender(String gender) {
        this.gender = gender;
    }

    public String getBirthDate() {
        return birthDate;
    }

    public void setBirthDate(String birthDate) {
        this.birthDate = birthDate;
    }

    public String getBirthTime() {
        return birthTime;
    }

    public void setBirthTime(String birthTime) {
        this.birthTime = birthTime;
    }

    public String getDeleteStatus() {
        return deleteStatus;
    }

    public void setDeleteStatus(String deleteStatus) {
        this.deleteStatus = deleteStatus;
    }

    public String getUpdateStatus() {
        return updateStatus;
    }

    public void setUpdateStatus(String updateStatus) {
        this.updateStatus = updateStatus;
    }

    public String getAddressUse() {
        return addressUse;
    }

    public void setAddressUse(String addressUse) {
        this.addressUse = addressUse;
    }

    public String getAddressText() {
        return addressText;
    }

    public void setAddressText(String addressText) {
        this.addressText = addressText;
    }

    public String getAddressLine() {
        return addressLine;
    }

    public void setAddressLine(String addressLine) {
        this.addressLine = addressLine;
    }

    public String getAddressCity() {
        return addressCity;
    }

    public void setAddressCity(String addressCity) {
        this.addressCity = addressCity;
    }

    public String getAddressDistrict() {
        return addressDistrict;
    }

    public void setAddressDistrict(String addressDistrict) {
        this.addressDistrict = addressDistrict;
    }

    public String getAddressState() {
        return addressState;
    }

    public void setAddressState(String addressState) {
        this.addressState = addressState;
    }

    public String getAddressPostalCode() {
        return addressPostalCode;
    }

    public void setAddressPostalCode(String addressPostalCode) {
        this.addressPostalCode = addressPostalCode;
    }

    public String getContactRelationship() {
        return contactRelationship;
    }

    public void setContactRelationship(String contactRelationship) {
        this.contactRelationship = contactRelationship;
    }

    public String getContactName() {
        return contactName;
    }

    public void setContactName(String contactName) {
        this.contactName = contactName;
    }

    public String getContactType() {
        return contactType;
    }

    public void setContactType(String contactType) {
        this.contactType = contactType;
    }

    public String getContactValue() {
        return contactValue;
    }

    public void setContactValue(String contactValue) {
        this.contactValue = contactValue;
    }

    public String getContactGender() {
        return contactGender;
    }

    public void setContactGender(String contactGender) {
        this.contactGender = contactGender;
    }

}
